package com.aaa.qy127.util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

public class UploadUtil {

    public static String upload(MultipartFile file){

        //上传的操作
        //将文件的名字变成唯一的在上传
        int i = file.getOriginalFilename().lastIndexOf(".");//获取上传的文件的原名
        String filename = file.getOriginalFilename().substring(i);//获取到图片原名的后缀名
        //System.out.println(filename);
        //借助 UUID 将文件名编程唯一的 重新定义
        String uuid = UUID.randomUUID().toString();
        //将获取到的 UUID 拼接到 获取到的 图片原名的后缀名的 前面
        filename = uuid + filename;
        //System.out.println("加上UUID之后的名字"+filename);

        // Endpoint以杭州为例，其它Region请按实际情况填写。
        String endpoint = "oss-cn-beijing.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
        String accessKeyId = "LTAI4G2rSXcMugiCLtgAkoex";
        String accessKeySecret = "oJCedPa4fPcHdEgDaxtwmk0g3LaOTs";
        String bucketName = "gaoimges";
        // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径，例如abc/efg/123.jpg。
        String objectName = "gaosir/"+filename;

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 上传文件到指定的存储空间（bucketName）并将其保存为指定的文件名称（objectName）。
        try {
            //file.getInputStream()  当前文件的输入流
            ossClient.putObject(bucketName, objectName, file.getInputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 关闭OSSClient。
        ossClient.shutdown();
        //https://gaoimges.oss-cn-beijing.aliyuncs.com/gaosir/8ea563d9-ba5f-4524-9f79-e113d6675b61.jpg
        String url = "https://"+bucketName+"."+endpoint+"/"+objectName;

        return url;
    }
}
